/**
 * 文件名：@HandlerInfoEntity.java <br/>
 * 包名：cn.efunbox.afw.core.entity <br/>
 * 项目名：afw-core <br/>
 * @author xtwin <br/>
 */
package cn.efunbox.afw.core.mvc;

import cn.efunbox.afw.core.annotation.mvc.Bind;
import cn.efunbox.afw.core.annotation.mvc.Result;
import cn.efunbox.afw.core.invocation.Invoker;
import cn.efunbox.afw.core.mvc.template.Templator;

/**
 * 类名：HandlerInfoEntity  <br />
 *
 * 功能：HandlerInfo实体实现
 *
 * @author xtwin <br />
 * 创建时间：2015年12月9日 上午10:41:39  <br />
 * @version 2015年12月9日
 */
public class HandlerInfoEntity implements HandlerInfo {

	// 处理器
	private Object handler;
	
	// 前置action执行器列表
	private Invoker[] preInvokers;
	
	// 后置action执行器列表
	private Invoker[] postInvokers;
	
	// 模板
	private Templator templator;
	
	// 结果类型
	private String resultType;
	
	// 提取结果信息
	private String[] extract;
	
	// 数据绑定配置
	private Bind[] binds;
	
	// 结果
	private Result result;

	/**
	 * @version 2015年12月9日-上午10:44:57
	 */
	@SuppressWarnings("unchecked")
	public <T> T getHandler() {
		return (T) handler;
	}

	/**
	 * @version 2015年12月9日-上午10:44:57
	 */
	public void setHandler(Object handler) {
		this.handler = handler;
	}

	/**
	 * @version 2015年12月9日-上午10:44:14
	 */
	public Invoker[] getPreInvokers() {
		return preInvokers;
	}

	/**
	 * @version 2015年12月9日-上午10:44:14
	 */
	public void setPreInvokers(Invoker[] preInvokers) {
		this.preInvokers = preInvokers;
	}

	/**
	 * @version 2015年12月9日-上午10:44:14
	 */
	public Invoker[] getPostInvokers() {
		return postInvokers;
	}

	/**
	 * @version 2015年12月9日-上午10:44:14
	 */
	public void setPostInvokers(Invoker[] postInvokers) {
		this.postInvokers = postInvokers;
	}

	/**
	 * @version 2015年12月9日-上午10:44:14
	 */
	public Templator getTemplator() {
		return templator;
	}

	/**
	 * @version 2015年12月9日-上午10:44:14
	 */
	public void setTemplator(Templator templator) {
		this.templator = templator;
	}

	/**
	 * @version 2015年12月9日-上午10:44:14
	 */
	public String getResultType() {
		return resultType;
	}

	/**
	 * @version 2015年12月9日-上午10:44:14
	 */
	public void setResultType(String resultType) {
		this.resultType = resultType;
	}

	/**
	 * @version 2015年12月9日-上午10:44:14
	 */
	public String[] getExtract() {
		return extract;
	}

	/**
	 * @version 2015年12月9日-上午10:44:14
	 */
	public void setExtract(String[] extract) {
		this.extract = extract;
	}

	/**
	 * @version 2015年12月9日-上午10:44:14
	 */
	public Bind[] getBinds() {
		return binds;
	}

	/**
	 * @version 2015年12月9日-上午10:44:14
	 */
	public void setBinds(Bind[] binds) {
		this.binds = binds;
	}

	/**
	 * @version 2015年12月9日-下午1:59:19
	 */
	public Result getResult() {
		return result;
	}

	/**
	 * @version 2015年12月9日-下午1:59:19
	 */
	public void setResult(Result result) {
		this.result = result;
	}

}
